//#include <iostream>
//using namespace std;
//
//const int INF = 0x3f3f3f3f;
//const int N = 1e5 + 10;
//int x;
//int cnt[N];
//int maxi = -INF, mini = INF;
//int m, n;
//
//int main()
//{
//	int n;
//	cin >> n;
//	while(cin >> x)
//	{
//		cnt[x]++;
//		maxi=max(maxi, x);
//		mini = min(mini, x);
//		if(cnt[x] == 2) n = x;
//	}
//	for(int i = mini; i <= maxi; i++)
//		if(!cnt[i]) m = i;
//	cout << m <<  " " << n << endl;
//	return 0;
//}

#include <iostream>
using namespace std;

typedef long long ll;
const int N = 1e5 + 10;
ll n, x;
ll h[N], sum[N];

bool check(int y)
{
	for(int i = y; i <= n - 1; i++) 
		if(sum[i] - sum[i - y] < x) return false;
	return true;
}
int main()
{
	cin >> n >> x;
	x *= 2;
	for(int i = 1; i < n; i++) {
		cin >> h[i];
		sum[i] = sum[i - 1] + h[i];
	}
	int left = 1, right = n;
	while(left < right)
	{
		int mid = (left + right) / 2;
		if(check(mid)) right = mid;
		else left = mid + 1;
	}
	cout << left;
	return 0;
}
